#该文件是 日志 配置文件，规定了日志保存在什么位置

# 初始化句柄，获取是哪一个文件的哪一行的哪一个方法在打印日志
import os

import logging

from api_object.utils.file_tools import FileTool

logger = logging.getLogger(__name__)

#os.sep路径分割符（如果是windows系统，会自动拼接为反斜线\；其他系统自动拼接为正斜线/）
#sep.join 需要的参数是一个列表
#os.sep.join(路径，文件夹名，文件名) # 将路径下的文件夹下的某文件的路径拼接

# 拼接日志文件所在的路径os.sep.join([文件路径,文件名])
file_path = os.sep.join([FileTool.get_interface_dir(),"logs"])

# 如果路径不存在，则创建
if not os.path.exists(file_path):
    os.mkdir(file_path)

# 拼接log文件和句柄
file_handle = logging.FileHandler(filename=file_path + "/apiobject.log",encoding="utf-8")

# 日志的输出格式：时间，进程，日志级别，文件名，所在行，所在函数，打印出来的信息
formatter = logging.Formatter(
    '[%(asctime).19s] %(process)d:%(levelname).1s %(filename)s:%(lineno)d:%(funcName)s: %(message)s]')

# 日志格式 和 文件句柄 进行绑定
file_handle.setFormatter(formatter)

# 控制台句柄定义
stream_handler = logging.StreamHandler()

# 日志格式 与 控制台句柄 进行绑定
stream_handler.setFormatter(formatter)

# 与logger进行绑定
logger.addHandler(file_handle)
logger.addHandler(stream_handler)

# 设置 展示 / 写入文件 的日志级别（并不是所有级别的日志都需要记录下来）
logger.setLevel(logging.INFO)